package com.jic.market.api.manage;

import com.jic.common.base.vo.PageResult;
import com.jic.common.base.vo.RestResult;
import com.jic.market.request.manager.lottery.*;
import com.jic.market.response.manager.lottery.LotteryActivityResponse;
import com.jic.market.response.manager.lottery.LotteryDrawRecordResponse;
import com.jic.market.response.manager.lottery.LotteryThemeResponse;

import java.util.List;

/**
 * @author: MJ
 * @date: 2020-03-02
 * @remark: 抽奖活动Api
 */
public interface LotteryActivityApi {

    /**
     * 抽奖活动后台管理列表查询
     * @param request
     * @return
     */
    RestResult<PageResult<LotteryThemeResponse>> queryList(LotteryThemeInquireRequest request);

    /**
     * 抽奖活动详情页查询
     * @param request
     * @return
     */
    RestResult<LotteryActivityResponse> getLotteryThemeInfo(LotteryThemeRequest request);

    /**
     * 查询抽奖活动统计数据
     * @param form
     * @return
     */
    RestResult<PageResult<LotteryDrawRecordResponse>> getLotteryDrawRecordList(LotteryDrawRecordRequest form);


    /**
     * 创建抽奖活动-设置抽奖规则
     * @param request
     * @return
     */
    RestResult<Long> saveLotteryActivity(LotteryActivityRequest request);

    /**
     * 创建抽奖活动-奖品设置
     * @param request
     * @return
     */
    RestResult<Integer> saveLotteryAwards(LotteryAwardsListRequest request);

    /**
     * 编辑抽奖活动-抽奖规则设置
     * @param request
     * @return
     */
    RestResult<LotteryActivityResponse> updateLotteryActivity(LotteryActivityRequest request);

    /**
     * 编辑抽奖活动-抽奖奖项
     * @param form
     * @return
     */
    RestResult<Integer> updateLotteryAwards(LotteryAwardsListRequest form);


    /**
     * 复制抽奖活动
     * @param request
     * @return
     */
    RestResult<Long> copyLotteryActivity(LotteryActivityRequest request);

    /**
     * 保存抽奖模板
     * @param request
     * @return
     */
    RestResult<Long> saveTemplate(LotteryTemplateRequest request);

    /**
     * 删除抽奖活动
     * @param request
     * @return
     */
    RestResult<String> deleteLotteryActivity(LotteryActivityRequest request);



    /**
     * 关闭抽奖活动
     * @param request
     * @return
     */
    RestResult<String> closeLotteryActivity(LotteryThemeRequest request);


    /**
     * 审核抽奖活动
     * @param request
     * @return
     */
    RestResult<String> verifyLotteryActivity(LotteryThemeRequest request);

}
